package scm.erp.sale.order.enums;
import com.fasterxml.jackson.annotation.JsonValue;
import scm.erp.core.mybatis.type.EnumValue;
public enum OrderStatus {
    // 枚举常量：保持原定义（value + 中文名称通过构造方法传入）
    DEFAULT(0, "默认"),
    SIGN(1, "签到"),
    ENTRANCE(2, "入场"),
    TARE(3, "称皮"),
    SHIPPING(4, "装货"),
    ROUGH(5, "称毛"),
    LEAVE(6, "出厂"),
    FINISH(7, "完成"),
    CHECK(8, "审核"),
    APPLY(9, "申请");

    // 构造方法：初始化 value 和 name
    OrderStatus(Integer value, String name) {
        this.value = value;
        this.name = name;
    }
    // JSON 序列化时返回 value（前端可通过 value 识别状态）
    @JsonValue
    @EnumValue // MyBatis 类型转换注解（关联数据库存储的 value）
    private final Integer value;
    // 中文名称（私有字段，通过 getter 访问，符合封装性）
    private final String name;

    // 保留原 getter 方法，直接返回构造时的 value
    public Integer getValue() {
        return value;
    }

    // 优化后：直接返回构造时的 name，删除冗余 if-else
    public String getName() {
        return name;
    }

    // （可选）新增：根据 value 快速获取枚举实例（业务常用）
    public static OrderStatus getByValue(Integer value) {
        for (OrderStatus status : values()) {
            if (status.value.equals(value)) {
                return status;
            }
        }
        return DEFAULT; // 默认返回 DEFAULT 或抛出异常，根据业务需求调整
    }
}